import os

import time

from ftplib import FTP

ftp = FTP()

# 打开调试级别2, 显示详细信息

# ftp.set_debuglevel(2)

# 服务器IP和端口
ftp.connect("relosy.cn", 21)
ftp.encoding = "utf-8"
# 匿名登陆, 如果需要登陆, 就把两个空字符串写上用户名和密码就行了("username", "password")
ftp.login(user="root", passwd="Avenge1026")
ftp.set_pasv(True)


# 切换目录, 相对于ftp目录, 比如设置的ftp根目录为/vat/ftp, 那么pub就是/var/ftp下面的目录
ftp.cwd("/myftp")
# 查看目录下有哪些文件, 如果文件名已经存在, 那么再次上传同一个文件就会报错, 返回列表
print(ftp.nlst("/myftp"))
# 使用二进制的方式打开文件

f_num = 0
bufsize = 1024
start_time = time.time()

for root, dirs, files in os.walk('D:\\学习文件\\CS\\桌面通讯录-第二组\\00-需求分析'):

    for file in files:
        fl = os.path.join(root, file)

        # file = file.encode("gbk").decode("utf-8")
        # file = file.encode("utf-8")
        with open(fl, 'rb') as f:
            ftp.storbinary('STOR %s' % file, f, bufsize)

        f_num = f_num + 1
        if int(f_num) % 100 == 0:
            print(f_num)
print("共上传文件：%s 个" % f_num)

# 关闭调试模式

# ftp.set_debuglevel(0)

# 退出FTP连接

ftp.quit()

end_time = time.time()

print('用时:%s 秒' % (end_time - start_time))


def decode(self, bytes):
    return bytes.decode('utf-8', self.unicode_errors)
